Computer-aided design (CAD) software allows a user to construct and manipulate complex three-dimensional (3D) models. A number of different modeling techniques can be used to create a 3D model. One such technique is a solid modeling technique, which provides for topological 3D models where the 3D model is a collection of interconnected topological entities (e.g., vertices, edges, and faces). The topological entities have corresponding supporting geometrical entities (e.g., points, trimmed curves, and trimmed surfaces). Geometric entities that are trimmed surfaces correspond to faces bounded by edges, which correspond to trimmed curves; whereas, geometric entities that are points correspond to topological entities that are vertices. CAD systems may combine solid modeling and other modeling techniques, such as parametric modeling techniques. Parametric modeling techniques can be used to define various parameters for different features and components of a model, and to define relationships between those features and components based on relationships between the various parameters.
A design engineer is a typical user of a 3D CAD system. The design engineer designs physical and aesthetic aspects of 3D models, and is skilled in 3D modeling techniques. The design engineer creates parts and may assemble the parts into a subassembly. Parts and subassemblies may be used to design an assembly.
A solid modeling system may be a feature-based 3D CAD system wherein a part is constructed using various geometric building blocks, hereinafter referred to as features. Examples of features include bosses, fillets, chamfers, cuts, holes, shells, lofts, and sweeps. Commercially available feature-based modeling systems include the SolidWorks® 2007 software system available from SolidWorks Corporation of Concord, Mass.
A feature-based CAD system may be a history-based CAD system meaning that a particular feature acts on all features that have been previously included in a part and has no effect on features subsequently introduced to the part. Thus, the physical structure of a part constructed using a feature-based 3D CAD system is often dependent upon the order in which a design engineer creates the features. For example, if a boss is defined prior to and occupies the same space as a hole, material will be removed from the boss where the hole and boss intersect; on the other hand, if a boss is defined after the hole that occupies the same space, the boss will not have material removed where the hole and boss intersect.
Generally, history-based CAD systems define a part as an ordered list of features. Each feature in the ordered list has a corresponding regeneration algorithm that, in accordance with the feature's definition, modifies the geometry that results from the generation of the previously defined features in the ordered list. Essentially, a part is created by executing a sequence of feature operations. While creating a part, the design engineer typically adds features one by one to the part's feature list. To modify a feature, the design engineer changes the feature's data and then the CAD system recreates the part by regenerating every feature one by one in the order in which the design engineer originally introduced the features. All the features are typically regenerated sequentially according to the order in which the features were created to ensure that the design intent is preserved and the part is properly constructed by the CAD system. Additionally, utilizing an ordered list of features has the advantage of easily managing parametric changes.
Regenerating the entire part impacts the performance of the CAD system especially when a part is complex because the time and computing resources required to regenerate all the features may be considerable. Hence, the update process may be very slow, even when only a single parameter in one feature is modified.
SolidWorks® 2003 software addressed the performance impact caused from the regeneration of an entire part by only regenerating the modified feature and all features defined after the modified feature. The features defined after the modified feature are also regenerated to ensure that the later defined features have the proper effect on earlier defined features as well as the modified feature. Although the entire part may not be regenerated, slower performance may remain an issue when the modified feature is defined early in an historical sense because then a significant portion of the part must be regenerated. Regenerating the modified feature and all features defined after the modified feature facilitated the Rollback and Roll Forward commands in the SolidWorks® 2003 software product.
Additional performance improvements for state-of-the-art CAD systems are desirable. Such improvements can be realized by providing an efficient means to reduce the regeneration time necessary to update a CAD model. One such means, as will be discussed, reduces the number of features that need to be regenerated whenever a modification is made to a model.